<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Mensajes extends MY_Controller {

  /**
   * Evita la validacion (enfocado cuando se usa ajax). Ver mas en privilegios_model
   * @var unknown_type
   */
  private $excepcion_privilegio = array('ajax_get_siguiente_numero');

  public function _remap($method){
    $this->carabiner->css(array(
        array('bootstrap/bootstrap-simplex.css', 'screen'),
        array('bootstrap/bootstrap-responsive.css', 'screen'),
        array('bootstrap/charisma-app.css', 'screen'),
        array('bootstrap/jquery-ui-1.8.21.custom.css', 'screen'),
        array('bootstrap/fullcalendar.css', 'screen'),
        array('bootstrap/fullcalendar.print.css', 'print'),
        array('bootstrap/chosen.css', 'screen'),
        array('bootstrap/uniform.default.css', 'screen'),
        array('bootstrap/colorbox.css', 'screen'),
        array('bootstrap/jquery.cleditor.css', 'screen'),
        array('bootstrap/jquery.noty.css', 'screen'),
        array('bootstrap/noty_theme_default.css', 'screen'),
        array('bootstrap/elfinder.min.css', 'screen'),
        array('bootstrap/elfinder.theme.css', 'screen'),
        array('bootstrap/jquery.iphone.toggle.css', 'screen'),
        array('bootstrap/opa-icons.css', 'screen'),
        array('bootstrap/uploadify.css', 'screen'),

        array('base-panel.css', 'screen')
    ));
    $this->carabiner->js(array(
        array('bootstrap/jquery-1.7.2.min.js'),
        array('bootstrap/jquery-ui-1.8.21.custom.min.js'),
        array('bootstrap/bootstrap-transition.js'),
        array('bootstrap/bootstrap-alert.js'),
        array('bootstrap/bootstrap-modal.js'),
        array('bootstrap/bootstrap-dropdown.js'),
        array('bootstrap/bootstrap-scrollspy.js'),
        array('bootstrap/bootstrap-tab.js'),
        array('bootstrap/bootstrap-tooltip.js'),
        array('bootstrap/bootstrap-popover.js'),
        array('bootstrap/bootstrap-button.js'),
        array('bootstrap/bootstrap-collapse.js'),
        array('bootstrap/bootstrap-carousel.js'),
        array('bootstrap/bootstrap-typeahead.js'),
        array('bootstrap/bootstrap-tour.js'),
        array('bootstrap/jquery.cookie.js'),
        array('bootstrap/fullcalendar.min.js'),
        array('bootstrap/jquery.dataTables.min.js'),
        /** chart libraries **/
        array('bootstrap/excanvas.js'),
        array('bootstrap/jquery.flot.min.js'),
        array('bootstrap/jquery.flot.pie.min.js'),
        array('bootstrap/jquery.flot.stack.js'),
        array('bootstrap/jquery.flot.resize.min.js'),

        array('bootstrap/jquery.chosen.min.js'),
        array('bootstrap/jquery.uniform.min.js'),
        array('bootstrap/jquery.colorbox.min.js'),
        array('bootstrap/jquery.cleditor.min.js'),
        array('bootstrap/jquery.noty.js'),
        array('bootstrap/jquery.elfinder.min.js'),
        array('bootstrap/jquery.raty.min.js'),
        array('bootstrap/jquery.iphone.toggle.js'),
        array('bootstrap/jquery.autogrow-textarea.js'),
        array('bootstrap/jquery.uploadify-3.1.min.js'),
        array('bootstrap/jquery.history.js'),
        array('bootstrap/charisma.js'),
    ));

    $this->load->model("empleados_model");
    if($this->empleados_model->checkSession()){
      // $this->empleados_model->excepcion_privilegio = $this->excepcion_privilegio;
      // $this->info_empleado = $this->empleados_model->getInfoEmpleado($_SESSION['id_empleado'], true);
      $this->{$method}();
    }else
      redirect(base_url('panel/home/'));
  }


  public function index()
  {
    $this->carabiner->js(array(
      array('general/msgbox.js')
    ));

    $params['seo'] = array(
      'titulo' => 'Administración de mensajes'
    );

    $this->load->model('mensajes_model');
    $params['conversaciones'] = $this->mensajes_model->get_conversaciones();

    if (isset($_GET['msg']))
      $params['frm_errors'] = $this->showMsgs($_GET['msg']);

    $this->load->view('panel/header', $params);
    $this->load->view('panel/general/menu', $params);
    $this->load->view('panel/mensajes/admin', $params);
    $this->load->view('panel/footer', $params);
  }

  public function responder()
  {
    if (isset($_GET['id']{0}))
    {
      $this->carabiner->js(array(
        array('general/msgbox.js'),
        array('panel/mensajes/mensajes.js'),
      ));

      $params['seo'] = array(
        'titulo' => 'Administración de mensajes'
      );

      $this->load->model('mensajes_model');

      $this->configAddRespuesta();
      if ($this->form_validation->run() === FALSE)
      {
        $params['frm_errors'] = $this->showMsgs(2, preg_replace("[\n|\r|\n\r]", '', validation_errors()));
      }
      else
      {
        $mdl_res = $this->mensajes_model->responder();

        if ($mdl_res)
          redirect('panel/mensajes/responder/?id='.$_GET['id'].'&msg=3');

      }

      $params['conversacion'] = $this->mensajes_model->get_conversacion_usuario();

      if (isset($_GET['msg']))
        $params['frm_errors'] = $this->showMsgs($_GET['msg']);

      $this->load->view('panel/header', $params);
      $this->load->view('panel/general/menu', $params);
      $this->load->view('panel/mensajes/chat', $params);
      $this->load->view('panel/footer', $params);
    }
    else
      redirect(base_url('panel/mensajes/?msg=1'));
  }

  public function ajax_elimina_mensaje()
  {
    $this->load->model('mensajes_model');
    $mdl_res = $this->mensajes_model->ajax_elimina_mensaje();

    $resp['noty'] = $this->showMsgs(5);
    $resp['success'] = 1;

    echo json_encode($resp);
  }

  public function configAddRespuesta()
  {
    $this->load->library('form_validation');
    $this->form_validation->set_rules('frespuesta', 'Respuesta', 'required|max_length[200]');
  }

  /**
   * Muestra mensajes cuando se realiza alguna accion
   * @param unknown_type $tipo
   * @param unknown_type $msg
   * @param unknown_type $title
   */
  private function showMsgs($tipo, $msg='', $title='Articulos')
  {
    switch($tipo){
      case 1:
        $txt = 'El campo ID es requerido.';
        $icono = 'error';
        break;
      case 2: //Cuendo se valida con form_validation
        $txt = $msg;
        $icono = 'error';
        break;
      case 3:
        $txt = 'El mensaje se agregó y envio correctamente.';
        $icono = 'success';
        break;
      case 4:
        $txt = 'El mensaje se modificó correctamente.';
        $icono = 'success';
        break;
      case 5:
        $txt = 'El mensaje se eliminó correctamente.';
        $icono = 'success';
        break;
      case 6:
        $txt = 'El mensaje se activó correctamente.';
        $icono = 'success';
        break;
    }

    return array(
        'title' => $title,
        'msg' => $txt,
        'ico' => $icono);
  }

}

/* End of file mensajes.php */
/* Location: ./application/controllers/panel/mensajes.php */
